/**
 * Redis Key 前缀
 */
let redisKeyPrefix = "";
export const setRedisKeyPrefix = (prefix: string) => redisKeyPrefix = prefix;
export const getRedisKeyPrefix = () => redisKeyPrefix;

/**
 * 存储在 Redis 中的数据对应的 Key 前缀常量组成的对象
 */
export const RedisKeyPreConst = {
  USER: () => getRedisKeyPrefix() + "user:",
  ROLE: () => getRedisKeyPrefix() + "role:",
  MENU: () => getRedisKeyPrefix() + "menu:",
};

/**
 * 存储在 Redis 中的数据对应的 Key 常量组成的对象
 */
export const RedisKeyConst = {
  // 用户登录凭证
  USER_LOGIN_CREDENTIAL: () => RedisKeyPreConst.USER() + "login:credential:",
  // 所有角色
  ROLE_ALL: () => RedisKeyPreConst.ROLE() + "all",
  // 所有菜单
  MENU_ALL: () => RedisKeyPreConst.MENU() + "all",
  // 树形结构的所有菜单
  MENU_ALL_TREE: () => RedisKeyPreConst.MENU() + "all:tree",
};